package exam_20210713.examTest01;

import java.util.Random;

/**
 * @author Xiao
 * @date 2021/7/13
 */
public class Test01 {
    /**
     * 需求：
     * 利用随机数生成5个范围为1-100（包含1和100）之间的随机数存入数组（随机数可重复），
     * 遍历数组求和并打印在控制台，之后获取数组中角标和对应的元素都为偶数的元素（0也是偶数），
     * 并打印在控制台。
     */
    public static void main(String[] args) {
        Random r = new Random();
        //定义数组容器存储随机数，长度为5
        int[] arr = new int[5];
        //循环生成5个1-100的随机数并存入数组
        for (int i = 0; i < 5; i++) {
            arr[i] = r.nextInt(100) + 1;
        }
        //遍历数组并打印
        printArray(arr);
        System.out.println("------------------");
        //获取数组中角标和对应的元素都为偶数的元素并打印
        getEvenNumber(arr);
    }

    //获取数组中角标和对应的元素都为偶数的元素并打印 → getEvenNumber(){}
    private static void getEvenNumber(int[] arr) {
        //定义一个值为-1的索引变量index，遍历数组查看是否存在符合要求的元素，
        // 如果存在，将对应的索引值赋给index，结束遍历
        int index = -1;
        for (int i = 0; i < arr.length; i+=2) {
            if (i % 2 == 0 && arr[i] % 2 == 0) {
                index = i;
                break;
            }
        }
        //判断index的值是否改变，如果index != -1，遍历数组并打印相应元素，
        // 如果index == -1，说明不存在对应元素，给出提示。
        if (index != -1) {
            System.out.println("数组中角标及对应元素均为偶数的元素如下：");
            for (int i = 0; i < arr.length; i+=2) {
                if (i % 2 == 0 && arr[i] % 2 == 0) {
                    System.out.println("index：" + index + "\tarr[i]：" + arr[i]);
                }
            }
            return;
        }
        System.out.println("当前数组中没有角标和对应元素都为偶数的元素。");
    }

    //遍历数组并打印 → printArray(){}
    public static void printArray(int[] arr) {
        System.out.println("生成长度为5的随机数组如下：");
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                System.out.print(arr[i]);
            } else {
                System.out.print(arr[i] + ", ");
            }
        }
        System.out.println("]");
    }
}
